LoRaWAN Portal
LoRaWAN Portal (CONNECT) is a LoRaWAN export format used to deliver device uplink events.
This processor transforms Actility uplink payloads (DevEUI_uplink) into CONNECT-compatible JSON arrays.
All examples below show:
- the input Actility message payload
- the
callProcessorAPI configuration - the transformed output produced by TPX Flow
Processor ID and configuration
Use processor id CONNECT_TRANSFORMATION in your output stream operations.
{
"upOperations": [
{
"type": "callProcessor",
"id": "CONNECT_TRANSFORMATION"
}
]
}
messageFormat parameter
CONNECT supports an optional configuration.messageFormat value:
DEFAULTDEFAULT_FCNTUPDEFAULT_MESSAGE_TYPEDEFAULT_ALLIfmessageFormatis missing or invalid, TPX Flow automatically falls back toDEFAULT_ALL.
Example configuration with messageFormat
{
"upOperations": [
{
"type": "callProcessor",
"id": "CONNECT_TRANSFORMATION",
"configuration": {
"messageFormat": "DEFAULT_ALL"
}
}
]
}
Tags mapping from Actility
CONNECT tags is built from DevEUI_uplink.CustomerData.tags (Actility format).
- Actility source format:
"CustomerData": {
"tags": ["building=A", "type=MOTION,TEMP"]
} - CONNECT output format:
"tags": {
"building": ["A"],
"type": ["MOTION", "TEMP"]
}
Each entry is parsed as key=value1,value2.
Input reference (Actility format)
{
"DevEUI_uplink": {
"DevEUI": "70b3d52a1ff00001",
"Time": "2023-03-31T08:00:08.599602Z",
"payload_hex": "1234",
"FCntUp": 15800,
"SpFact": 7,
"LrrRSSI": "-73",
"LrrSNR": "9.8",
"Lrrid": "506",
"FPort": 1,
"LrrLAT": 59.776931,
"LrrLON": 14.903832,
"Frequency": 868300000,
"AckRequested": 0,
"DR": 5,
"BatteryLevel": "255",
"MType": 4,
"CustomerData": {
"tags": ["building=A", "type=MOTION,TEMP"]
},
"Lrrs": {
"Lrr": [
{
"LrrRSSI": "-73",
"LrrSNR": "9.8",
"Lrrid": "506",
"Chain": 0,
"LrrLrcid": "7076FF02123C"
},
{
"LrrRSSI": "-47",
"LrrSNR": "9.5",
"Lrrid": "1789",
"Chain": 0,
"LrrLrcid": "647FDA016C40"
}
]
}
}
}
Output examples by messageFormat
DEFAULT
[
{
"devEui": "70b3d52a1ff00001",
"sensorType": "other",
"timestamp": "2023-03-31T08:00:08.599602Z",
"payload": "1234",
"spreadingFactor": "7",
"rssi": "-73",
"snr": "9.8",
"gatewayIdentifier": "506",
"fPort": "1",
"latitude": 59.776931,
"longitude": 14.903832,
"tags": {
"building": ["A"],
"type": ["MOTION", "TEMP"]
}
}
]
DEFAULT_FCNTUP
[
{
"devEui": "70b3d52a1ff00001",
"sensorType": "other",
"timestamp": "2023-03-31T08:00:08.599602Z",
"payload": "1234",
"fCntUp": 15800,
"spreadingFactor": "7",
"rssi": "-73",
"snr": "9.8",
"gatewayIdentifier": "506",
"fPort": "1",
"latitude": 59.776931,
"longitude": 14.903832,
"tags": {
"building": ["A"],
"type": ["MOTION", "TEMP"]
}
}
]
DEFAULT_MESSAGE_TYPE
[
{
"devEui": "70b3d52a1ff00001",
"sensorType": "other",
"messageType": "payload",
"timestamp": "2023-03-31T08:00:08.599602Z",
"payload": "1234",
"fCntUp": 15800,
"spreadingFactor": "7",
"rssi": "-73",
"snr": "9.8",
"gatewayIdentifier": "506",
"fPort": "1",
"latitude": 59.776931,
"longitude": 14.903832,
"tags": {
"building": ["A"],
"type": ["MOTION", "TEMP"]
}
}
]
DEFAULT_ALL
[
{
"devEui": "70b3d52a1ff00001",
"sensorType": "other",
"messageType": "payload",
"timestamp": "2023-03-31T08:00:08.599602Z",
"payload": "1234",
"fCntUp": 15800,
"toa": null,
"freq": 868300000,
"batteryLevel": "255",
"ack": false,
"spreadingFactor": "7",
"dr": 5,
"rssi": "-73",
"snr": "9.8",
"gatewayIdentifier": "506",
"fPort": "1",
"latitude": 59.776931,
"longitude": 14.903832,
"tags": {
"building": ["A"],
"type": ["MOTION", "TEMP"]
},
"gateways": [
{
"rssi": "-73",
"snr": "9.8",
"gatewayIdentifier": "506",
"gwEui": "506",
"mac": "7076FF02123C",
"antenna": 0
},
{
"rssi": "-47",
"snr": "9.5",
"gatewayIdentifier": "1789",
"gwEui": "1789",
"mac": "647FDA016C40",
"antenna": 0
}
]
}
]
Invalid configuration behavior
If you pass an unsupported messageFormat, TPX Flow falls back to DEFAULT_ALL.
{
"upOperations": [
{
"type": "callProcessor",
"id": "CONNECT_TRANSFORMATION",
"configuration": {
"messageFormat": "NOT_A_VALID_FORMAT"
}
}
]
}
The output will be generated with the same field set as DEFAULT_ALL.